package vista.audio;
import java.io.File;

import javax.sound.midi.*;

public class ReproductorMIDI {
	
	public static Sequence CANCION_INTRO;
	{
		try {
			CANCION_INTRO = MidiSystem.getSequence(new File("res/music/Fiormula3 - Intro Song.mid"));
		} catch (Exception e){
			e.printStackTrace();
		}
	}
	
	private static ReproductorMIDI instancia;
	
	private Sequencer reproductor;
	
	public static ReproductorMIDI getInstancia(){
		if (instancia == null){
			instancia = new ReproductorMIDI();
		}
		return instancia;
	}
	
	private ReproductorMIDI(){
		try {
			reproductor = MidiSystem.getSequencer();
			reproductor.open();
		} catch (MidiUnavailableException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	/**
	 * Reproduce una secuencia MIDI y la loopea interminablemente
	 * @param cancion
	 */
	public void reproducirCancion(Sequence cancion){
		try {
			reproductor.setSequence(cancion);
		} catch (InvalidMidiDataException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		reproductor.start();
		reproductor.setLoopCount(Sequencer.LOOP_CONTINUOUSLY);
	}
}